I think that deep down somewhere in the MySQL docs there is a mention that updating an existing record with the same data it already contains, get optimized away (and hence does not trigger an update of the TIMESTAMP field).
CountZero
"If you have four groups working on a compiler, you'll get a 4-pass compiler." - Conway's Law
Comment on Re^2: Odd "rows affected" values using DBI on MySQL