const wrapInTransaction = (callback: (db: Db) => any) => {
const client = await pool.connect()
await client.query('BEGIN');
const db = defineDb(tables, (query, parameters) => {
const result = client.query(query, parameters);
affectedCount: result.rowCount,
const result = await callback(db);
await client.query('COMMIT')
await client.query('ROLLBACK')