Per the documentation, I know it checks wether the object is a new_record or is_destroyed, but does it do this just based on the objects's current state like having an id already set or overall not being nil? Or does it try to perform a query to see if it finds anything matching?