On Postgres 9.1 or later you can use something like:
WITH source AS (UPDATE table1
SET column4=true
WHERE column1='peter'
RETURNING column1, column2, column3)
INSERT INTO table2
SELECT column1, column2, column3
FROM source;