create rule view_a_r_update as on update to view_a do instead update a set two = new.two;
The problem is that your INSTEAD UPDATE rule is not constrained in any
way; it DOES hit every row. Instead, do something like:
create rule view_a_r_update as on update to view_a do instead update a set two = new.two where id =
old.id;
where id is a primary key in your table.
Cheers,
Brook