I am not a database expert but to increase accuracy couldn't you do the increment in a single SQL request instead of a select then update?  

Something like: 

UPDATE mapfishapp.geodocs set last_access = now(), access_count = access_count + 1 WHERE file_hash = ?;

The last access might be a few milliseconds after the actual access but the count and last_access should be consistent then.