так то оно так.
но есть нюанс 

Уточню задачу:
на форме есть QTableView(), при входе в форму модель привязанная к виеву пуста.
есть код:
bool CashePayment::eventFilter(QObject * obj, QEvent * event)
{
  if (obj == chequePaymantsView && event->type() == QEvent::FocusIn)
  {
    if(!PaymentModel->rowCount())
    {
      PaymentModel->insertRows(0,1);
      chequePaymantsView->setCurrentIndex (PaymentModel->index(0,0));
    }
  }
  else if (obj == chequePaymantsView && event->type() == QEvent::FocusOut)
  {
    PaymentModel->deleteEmpty();
  }
когда фокус попадает в виев в модели создается строка, когда модель теряет фокус и пользователь не ввел данных пустая запись из модели удаляется. И все было бы класно но как только пытаешся изменить данные фокус переходит к делегату и запись удаляется из модели, получается бардак 
 добавлено спустя 6 часов 33 минуты:
 добавлено спустя 6 часов 33 минуты: Кажись поборол 

Если кому понадобится надо так:
bool CashePayment::eventFilter(QObject * obj, QEvent * event)
{
  if (obj == chequePaymantsView && event->type() == QEvent::FocusIn)
  {
    if(!PaymentModel->rowCount())
    {
      PaymentModel->insertRow(0);
    }
    chequePaymantsView->setCurrentIndex (PaymentModel->index(PaymentModel->rowCount()-1,0));
  }
  else if (obj == chequePaymantsView
           && event->type() == QEvent::FocusOut
           && static_cast<QFocusEvent*>(event)->reason() != Qt::OtherFocusReason )
  {
      PaymentModel->deleteEmpty();
      chequePaymantsView->selectionModel()->clear();
  }
  // standard event processing
  return QObject::eventFilter(obj, event);
}