Sails.js лучший опыт использования транзакций с обещаниями (Postgres)

Я использую паруса 0.9.16 с Postgres, и мой вопрос: каков наилучший способ выполнить транзакцию, используя текущий API с обещаниями? Может быть, есть что-то лучше, чем:

    Model.query('BEGIN TRANSACTION', function (err) {
      if (err) {
        next(err);
      } else {
        Model
          .create(...)
          .(function (value) {
            return [value, RelatedModel.create(...).then(...)];
          })
          .fail(function (err) {
            Model.query('ROLLBACK');
            next(err);
          })
          .spread(function (...) {
            Model.query('COMMIT')
            next(...);
          })
      }
    })

Спасибо за помощь!