It allows you to wrap it all in a transaction. If you separate a database update and insertion into a queue, whichever happens second may fail, while the first succeeds.
Or actual XA, but that is cursed.
Or actual XA, but that is cursed.