I think it's fine to provide a default implementation. It's not broken if subclasses forget to reimplement it.