GR-30, types update rules

Not for merge, just comments
There's no reason to wrap this in a transaction since it's only executing one statement. The choice of when to use the `!` version of `update_attributes` has to do what how you plan to handle errors. `!` will raise an exception which will need to be rescued somewhere. The non-bang version will set an error message on the entity_type instance that should get checked to see if the update succeeded.