$db->update() は影響を受けた行数を返します。
insert ... on duplicate key update ... のための Zend_DB メソッドはありません。そのため、query() メソッドを使用する必要があります。
$result = $db->query('INSERT INTO table(key, field) SELECT val1, val2 FROM table as t2 ON DUPLICATE KEY UPDATE field = VALUES(field)');
影響を受けたレコードまたは挿入されたレコードの量を調べるには: $result->rowCount()
ただし、このメソッドは、同じ値で更新されたすべてのレコードもカウントします。
実際に影響を受ける (変更された) レコードをすべて知る必要があります。
ありがとう!