Managing the instance which has been conflicted

Hello, forum.
I created an SQLite table which declared by "ON CONFLICT IGNORE".
When the table was conflicted, the row cannot be inserted. 

From an Aurelius standpoint, the situation will raise an EIdNotSetException and the instance cannot regist to a manager. To avoid the other instance cannot be inserted, I wrapped try ~ except syntax like this:
  for i := 0 to ABuf.Count -1 do
  begin
    LItem := TDBItem.Create;
    try
      // assign values for LItem
      Mng.Save(LItem);
    except on E: Exception do
      if E is EIdNotSetException then
      begin
        if not Mng.IsAttached(LA1c) then
          FreeAndNil(LA1c);
      end
      else
        raise;
    end;
  end;

My question is, is there be a better solution or any recommendation for this situation? 
Thank you.

Hello, I'm afraid that is the best solution, since Aurelius relies that the INSERT execution will be performed and an ID will be retrieved (if you have created your class with ID IdentityOrSequence). You could map your ID generator to TIdGenerator.None and in this case no error will be raised, but you would have to set the ID of the row in advance, not sure if that's your desired behavior.