PostgreSQL 9.1より前では、INSERT / UPDATE/DELETEはトップレベルのステートメントとしてのみ使用できました。これが構文エラーが発生する理由です。
9.1以降では、一般的なテーブル式でデータ変更ステートメントを使用できます。クエリの例は次のようになります:
WITH updated AS (UPDATE test SET description = 'test' RETURNING id)
SELECT * FROM test WHERE id IN (SELECT id FROM updated);
変更したばかりのテーブルから選択する場合は注意してください。そうすれば、紛らわしい結果を得ることができます。クエリは同じスナップショットで実行されるため、SELECTはUPDATEステートメントの効果を認識しません。