when_committed! will run immediately if not in a transaction

If you call `when_committed` outside of a transaction,
and never save the model, the block will never run.
This may be exactly what you want, since the block
might depend on changes to the model.

`when_committed!` is useful in scenarios where you
don't know if the code will be called as part of a
transaction or other model change. If it happens
as part of transaction, wait until it is committed.