change `dirtyAttributes.pushObject` to `dirtyAttributes.addObject`

This prevents the same attributes from appearing multiple times in the
`dirtyAttributes` array

I'm not sure if this needs a test -- let me know and I'll add one.