This set of actions _must_ be wrapped in a transaction.