Count number of writes to different tables I have recently setup Continuous Archiving for Point-in-Time Recovery in a postgresql DB, but the archive is growing at an unexpectedly high pace (tens of gigabytes per day). The DB is a couple of GB, most of it static. It seems to me that we may have some part of the application which is writing a bit too aggressively to the database, possibly updating large number of rows frequently, causing needless diskload.

Is there some way to either ask the DB, or to analyze the WAL files, to find out which tables most writes (row delete, add or updates) are made to, preferably counted in bytes? That would be a big help in figuring out the source of the disk load.
This information is available through the Statistics Collector. 

The information you are looking for is stored in pg_stat_bgwriter or pg_stat_database. Maybe you are also interested in the values from pg_stat_all_tables that shows how many tuples have been inserted, updated or deleted.

Pay attention to the configuration properties listed in the section Statistics Collection Configuration

All those views show values since the instances has been started or since the last time pg_stat_reset() has been called. 

If you want to monitor the change over time, you need to sample those views and store the values somewhere (e.g. a text file or just another table that has a timestamp to indicate when the sample was taken).