Suppose the following situation:

I have a `product_stock` table and a `stock_transaction_log` table. Currently whenever there is an increase/decrease in a product's stock, I update the `product_stock` table increasing or decreasing the quantity and also insert an entry in the transaction log table, for auditing. This is done in the application code.

I am considering changing the update of the `product_stock` table to be done by a trigger on the transaction log table (instead of doing it directly in my application code), but I would like to add a reinforcement that the `product_stock` table would never be updated directly, and only the trigger would be authorized to update it.

Is there anyway to do this in postgresql (currently using 9.1)