You can use LIKE operator for getting updates and deletes and inserts like
I was pondering whether answering "show me everything that isn't (match non-select statements) would be more easily achievable...and in fact it is but...
" Select * from pg_stat_activity where query like '%UPDATE%' or '%update%' "
The same in case of updates and deletes.
That would depend on how acceptable false positives are...generally speaking pattern matching the input string doesn't work reliably.
You can also configure table level audit with the help of triggers to capture DML's