Niestety nie w taki sposób, jak to zrobiłeś z obecnymi sterownikami pymongo. Jak już zauważyłeś, jeśli wystąpią błędy w swoim insert_many() zgłosi wyjątek, a szczegóły wyjątku nie zawierają szczegółów inserted_id s.
Zawiera szczegóły kluczy, których nie powiodło się (w e.details['writeErrors'][]['keyValue'] ), więc możesz spróbować pracować wstecz od oryginalnej listy produktów.
Twoim innym obejściem jest użycie insert_one() w pętli z try ... z wyjątkiem i sprawdzania każdej wkładki. Wiem, że jest to mniej wydajne, ale jest to obejście…