Я на самом деле не знаю CodeIgniter, но я могу представить, как он должен работать, основываясь на других PHP ORM.
$something = new ModelObject();
$something->setSomeProperty($someVal);
$something->save();
$related = new RelatedObject();
$related->setModelId($something->getId());
$related->save();
Другими словами, когда вы создаете объект, представленный одной таблицей, этот объектсвойство, соответствующее сгенерированному идентификатору, заполняется для вас.Теперь вы можете использовать его при создании объекта в связанной таблице ("join") для установки свойства внешнего ключа перед сохранением.