public function upsert($data)
{
if (empty($data)) {
throw new Exception("Can't insert an empty row");
}
return $this->_connection->execute(sprintf('INSERT INTO %s SET %2$s ON DUPLICATE KEY UPDATE %2$s', $this->_name->quoted(), $this->_buildSet($data)), array_merge(array_values($data), array_values($data)));
}