When the second INSERT in a has_many create plan fails (unique constraint),
the driver should receive Transaction::Rollback and no orphaned user should
remain in the database.
When a standalone RMW condition fails (todo doesn’t belong to this user),
the driver should receive ROLLBACK on the RMW’s own transaction.
On PostgreSQL the CTE handles this in a single statement.
A successful standalone conditional update (link/unlink) wraps itself in
its own BEGIN…COMMIT on drivers that don’t support CTE-with-update
(SQLite, MySQL). When nested inside an outer transaction it uses savepoints
instead. On PostgreSQL the same operation is a single CTE-based QuerySql.