Transactions must only be used by a single thread