Everything UnitOfWork::prepare worked out, carried from there to UnitOfWork::journal
and on to apply_prepared. Owns its lines, so it can be held across the release of whatever
lock guarded the tables it was prepared against — but only if that release keeps the caller the
sole writer, since the _seq numbers inside it are already burned and a write that slipped in
between would land ahead of them in the log.
A batch of writes across several tables that lands whole or not at all (ADR 0012). Operations
are collected with put/patch/delete and nothing touches a table until commit(), which
runs the six steps documented in docs/architecture.md: resolve, barrier, prepare, journal,
write, cleanup. &mut Table borrows held for the call are the barrier — no separate write
queue to drain, since nothing else can hold those tables mutably at the same time.