insertRow

Первая особенность вставки строки в QTableView проявляется в том, что новая строка появляется, но нет еще ни одного установленного значения полям.

Это состояние надо ослеживать, ибо если сразу после этого вставить следующую строку или скопировать другую строку, (для стратегии OnFieldChange или OnRowChange), то получится не очень хорошо. Первая пустая строка останется на экране.

И после submit/select в модели данных пустая строка не исчезает. Но располагается теперь она снизу.

У этой строки кстати поле pri (индекс) будет пустое.

Чтобы такого не происходило надо при вставке строки сразу хоть одному полю устанавливать флаг setGenerated true. Тогда система модель-представление будет знать, что поле модифицировано и вызовет submit в нужный момент.