Runs several statements as one batch and answers each in turn: the shape
queryBatch and executeBatchWithResults have, and the one
TxScope's batch fits. A caller that reads either from the client
or through an open transaction takes one of these instead of naming both.
(statements: SqlStatement[]) => Promise<ResultSet[]>