Prática recomendada do Sails.js no uso de transações com promessas (Postgres)

Estou usando sails 0.9.16 com o Postgres e minha pergunta é: qual é a melhor maneira de executar transações usando a API atual com promessas? Pode haver algo melhor que:

    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(...);
          })
      }
    })

Obrigado pela ajuda!