In the existing code I am working with I have found the money transfer procedure which isn't wrapped in transaction, is it totally unacceptable or it is OK because there are all the needed sanity checks, i.e. that amount of money to transfer is greater than zero, and ORM level validation that balance is greater or equal to zero.
Thanks in advance
Added: Thank you guys for your responses, all of them are correct, I just marked @Garrett's because he had less reputation.
PS. The reason why I actually got so baffled in the first place with this is because it comes from a solid developer, and it's such a by-book piece of code, that seeing something like this with no transaction in sight is weird:
self.balance -= amount
save!
target.balance += amount
target.save!