Presumably it can't _ever_ know without being explicitly told, because 
even for a plain SELECT there might be triggers involved that update 
tables, or it might be a select of a stored proc, etc.  So in the 
general case, you can't assume that a select doesn't cause an update, 
and you can't be sure that the table list in an update is a complete 
list of the tables that might be updated.
Tatsuo Ishii wrote:
>Can I ask a question?
>
>Suppose table A gets updated on the master at time 00:00. Until 00:03
>pgpool needs to send all queries regarding A to the master only. My
>question is, how can pgpool know a query is related to A?
>--
>Tatsuo Ishii
>
>  
>