Podívejte se na mysql_affected_rows()
Mělo by vám to říci, zda bylo něco skutečně aktualizováno, a nikoli úspěšně aktualizováno nic, což má za následek návrat true.
php.net říká:
K dosažení požadovaných výsledků můžete použít následující:
if($this->db->affected_rows() >= 0){ }