Nun, da nehme ich mal an, dass der Visual Explain ja von einem Select/Update ausgeht und keine Where-Klausel findet, von einem Tablescan ausgehen muss.

Ein Insert schreibt aber einfach in die Tabelle und prüft allenfalls noch Constraints, wie in deinem Fall den Primary key.
Wie kommst du nun auf die Insert-Zeit von 300ms?

Du musst da folgendes beachten:
Ein Insert muss implizit noch ein Open machen.
Beim 1. Insert folgt ebenso auch ein Close.
Erst ab der 2. Wiederholung wird der ODP (Open Data Path) nicht mehr geschlossen, so dass alle folgenen Inserts erheblich schneller sind.

Prüfe also mal, ob dein Insert-Test nicht noch von wesentlichen anderen Faktoren abhängt:
Ggf. FileHandler-Programm mit ACTGRP(*NEW) statt ACTGRP(*CALLER)?

Die reine Insertzeit dürfte kaum 1 ms übersteigen.