/**
  * Method to roll back a transaction.
  *
  * @param   boolean  $toSavepoint  If true, rollback to the last savepoint.
  *
  * @return  void
  *
  * @since   12.3
  * @throws  RuntimeException
  */
 public function transactionRollback($toSavepoint = false)
 {
     $this->connect();
     if (!$toSavepoint || $this->transactionDepth <= 1) {
         parent::transactionRollback($toSavepoint);
     } else {
         $savepoint = 'SP_' . ($this->transactionDepth - 1);
         $this->setQuery('ROLLBACK TO SAVEPOINT ' . $this->quoteName($savepoint));
         if ($this->execute()) {
             $this->transactionDepth--;
         }
     }
 }