Дело как раз в том, что методы у них промисифицированы. Точнее так: если есть каллбэк -- идум на каллбек, иначе промис. Например код ф-ции transaction.begin:
begin (isolationLevel, callback) {
if (isolationLevel instanceof Function) {
callback = isolationLevel
isolationLevel = undefined
}
if (typeof callback === 'function') {
this._begin(isolationLevel, err => {
if (!err) {
this.emit('begin')
}
callback(err)
})
return this
}
return new PromiseLibrary((resolve, reject) => {
this._begin(isolationLevel, err => {
if (err) return reject(err)
this.emit('begin')
resolve(this)
})
})
}
Примеры же, да, используют подход каллбэков. Но, встречаются и примеры await. Что говорит о том, что ребята пошли по пути покрытия двух подходов.