I just read this in the documentation and would like to clarify what it
Both Base#save and Base#destroy come wrapped in a transaction that
ensures that whatever you do in validations or callbacks will happen
under the protected cover of a transaction. So you can use validations
to check for values that the transaction depend on or you can raise
exceptions in the callbacks to rollback.
Does this mean that if I do my_model.save I get a Transaction “for free”
without having to declare one?
And, if so, does it follow that I can write code in “before_save” and/or
“after_save” that updates a second model, my_other_model, safe in the
knowledge that either both models will update or neither will?