Note that the transactionmanager doesn't actually create a transaction
- that is done the first time .transaction() is called on it (if at
all). Consequently, .close() and .release() won't do anything if no
transaction has been created. This makes it a little unusual, but it
still works as a context manager.