мне не нравится документация го, это не документация, а просто набор методов, я и в коде могу это сам посмотреть. Почему нет норм примеров, как какой-нить кусок либы использовать. На примере тоже BeginTx взять создать контекст с таймаутом и передать его в функцию и сразу станет понятно как ее использовать. А так в документации просто написано:
func (*DB) BeginTx
func (s *DB) BeginTx(ctx context.Context, opts *sql.TxOptions) *DB
BeginTx begins a transaction with options
а откуда брать TxOptions, какие у него параметры указывать, не понятно