Db represents a shared reference to a mutable async db connection
It abstracts over the case where the connection is owned vs. a mutable reference.
The main goal of this abstraction is to defer locking the access to the
connection until the latest point possible, allowing other code paths (excepting
for connections in transactions) to access the connection as well.
At the moment, Db is passed in by value instead of reference into the transaction
provided transaction wrapper so you’ll need to use &conn
instead of just conn
.