yeah having the `with`/`try/`except`/`rollback`/`else`/`commit` parts in a separate decorator function or context manager would be nice, I didn't immediately turn up an existing one worth using.