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]