Как вариант, понимая трагичность ситуации в этой процедуре, было бы логично сбрасывать кеш InventTable сразу после обнаружения ошибки в процедуре вставки.
Т.е. сделать что-то подобное:
X++:
void process(container)
{
// ....
inventTable.insert();
if (- )
{
flush inventTable;
throw error();
}
//....
}