If it’s OK if the user doesn’t send this value, why are you validating for it to be present? Set a default for your boolean column (which you should be doing anyways ) and have a nice life.
While technically you could say that “false” is “present”, it would be really unintuitive for most of the people as present? is supposed to be just opposite of blank? and is used to check for truthiness. Additionally present? is used in Rails app for a long time, so even if part of Rails Core had agreed with your arguments, I would be really surprised seeing this changed.