let transaction;
try {
// get transaction
transaction = await sequelize.transaction();
// step 1
await Model.destroy({ where: {id}, transaction });
// step 2
await Model.create({}, { transaction });
// step 3
await Model.update({}, { where: { id }, transaction });
// commit
await transaction.commit();
} catch (err) {
// Rollback transaction only if the transaction object is defined
if (transaction) await transaction.rollback();
}