Sto citando direttamente la documentazione PHP qui:
Quando si utilizza UPDATE, MySQL non aggiornerà le colonne in cui il nuovo valore è lo stesso del vecchio valore. Ciò crea la possibilità che mysql_affected_rows() non sia effettivamente uguale al numero di righe corrispondenti, ma solo al numero di righe che sono state letteralmente interessate dalla query.
Quindi nel tuo caso, mysql_affected_rows() restituirà 0 quando UNIX_TIMESTAMP() restituisce lo stesso valore (ad esempio, due richieste dallo stesso client nello stesso secondo).