E
создавать какой-то там контекст к базе отдельно на каждый http-запрос - хуита, которая к тому же разваливается, стоит сделать шаг в другой тред
транзакционные запросы - как правило хуита, в 99% случаев достаточно запросов по айдишнику и оптимистичной блокировки
держать стейт сущностей, чтобы потом из этого найти измененные, чтобы из них создать запросы, чтобы потом их отправить одной пачкой - тоже хуита, хотя если очень нужны транзакции, то можно, конечно. но в этом случае вместо классического подхода в движок должен просто скармливаться какой-то Action, который вращается там до тех пор, пока не выиграет транзакцию или не исчерпается лимит повторов