Когда лучше использовать TableModel
Когда вам нужна полная реализация модели таблицы на чистом листе и / или вы должны предоставить что-то, что по природе вашей модели еще не существует или не соответствует
и когда мне расширять AbstractTableModel?
Когда вы можете повторно использовать существующую структуру и методы, предоставляемые абстрактным классом, и / или вам будет проще реализовать это.
Идея в том, что если вы можете использовать его снова, сделайте это. Если не можете, реализуйте с нуля.
Унаследовав AbstractTableModel, вы в любом случае будете улучшать интерфейс TableModel, это будет просто.