Transaction
The Transaction interface runs reads and row mutations against one isolated staged database inside a Client.transaction callback.
Do not retain this object after its callback completes. Run schema DDL in a standalone Client.query call or Client.exec script. Pass this object to helpers instead of awaiting another transaction on the same Client, which would queue behind the active callback and deadlock.