Use the individual verification functions referenced in _getFields() to verify that the incoming data is physically valid for database, and that all other checks that can be done in isolation are valid.
Following that, use _preSave() to do any checking where you need to compare multiple fields, or work with multiple fields simultaneously, or check a field against changeable environmental concerns.
Following that, use _preSave() to do any checking where you need to compare multiple fields, or work with multiple fields simultaneously, or check a field against changeable environmental concerns.