Is it possible to update a field value in one table based on data inserted into various other tables? Suppose I have a table representing clients. There is a field called last_active in the table which contains a time stamp. 
When a client uses the database they can insert data into one of four different tables. 
Is there an efficient way to update the time stamp based on the user adding/updating data to one of the other four tables? 

Currently I'm using a prepared statement to update the field and I run it directly after the prepared statements that add to or modify the other tables. Is this an efficient way to do it?
Consider switching the problem around...

Have a TIMESTAMP with suitable DEFAULT in each table.  Have it automatically set on UPDATE or INSERT.

Then, during the SELECT, JOIN the 4 tables and get GREATEST(t1.ts, t2.ts, ...) to find out the latest TIMESTAMP of the 4.

(I have been bitten by TIMESTAMP DEFAULTs -- they get updated when I am not expecting it.  I would rather take control and change/set the ts in the code.)