QAbstractItemModel is a class in the Qt framework
QAbstractTableModel is a class in Qt for models that represent their data as a two-dimentional array of items.
Well obviously you created an implementation qabstracttablemodel which has a little bit more specialized interface than qabstractitemmodel
What is "role" and where it comes from? (How to change background color after editing QTableView cell?)