public function commit()
    {
        try {
            $this->dbalConnection->commit();
        } catch (\PDOException $e) {
            // Surprisingly, DBAL's commit throws a PDOExeption in case
            // of serialization issue (not documented).
            if (($code = $e->getCode()) == '40001') {
                // Serialization failure (SQLSTATE 40001 for at least mysql, pgsql, sqlsrv).
                throw new common_persistence_sql_SerializationException(
                    "SQL Transaction Serialization Failure. See previous exception(s) for more information.",
                    intval($code),
                    $e
                );
            } else {
                // Another kind of error. Re-throw!
                throw $e;
            }
        }
    }