fix: 0 rows affected treated as an error

Updating dirty entities fails when dirty properties are "chaged" to same
values.

Rely on SQLSTATE code instead of counting affected rows.

Reproduce this issue:

$article->accessible('*', true);
$article->set($sameValuesFromFormSubmit); // gets marked as dirty
$this->Articles->save($article); // return false [0 rows affected]