public function updateByPk($pk, $attributes, $condition = '', $params = array())
{
$transaction = $this->dbConnection->beginInternalTransaction();
try {
$this->versionToTable($this->commandBuilder->createPkCriteria($this->tableName(), $pk, $condition, $params));
$result = parent::updateByPk($pk, $attributes, $condition, $params);
$transaction->commit();
return $result;
} catch (Exception $e) {
$transaction->rollback();
throw $e;
}
}