Porque has definido un campo como clave primaria (primary Key, pk) e intentas añadir un registro cuya clave primaria ya existe. Es normal que pase esto para no repetir información en la base de datos.
Ya que usas paradox, en cada TTable que uses, en el evento afterpost añade:
"Dataset" es el parámetro que tiene el evento. Flushbuffers (quizás esté mal escrito) fuerza a que se escriba el registro en la Base de datos, si se omite, el registro quedará en caché (casi siempre).
Saludos