When writing complex custom rpcs, it is often desired to have control over the db transaction lifecycle. The storage APIs however start their own transaction; to avoid isolation issues, it would be ideal if the storage APIs could have additional variants that accept a pre-existing transaction.
I can see how this might be useful for storage and other database-oriented operations. Can you open an issue on the tracker for us to track this feature request?