To allow for data to be loaded in discrete transactions, we can specify the data in containers and push all the contents to the server to be processed in one transaction. If any part of the container fails to load, the whole container is rolled back.
<Containers>
<Container CompSchema="SPFReferenceComponent" Scope="Data" ContainerID="PBS.Data">
<FunctionalUnit>
<IObject Name="U101" />
<IFunctionalUnit />
</FunctionalUnit>
<FunctionalUnit>
<IObject Name="U102" />
<IFunctionalUnit />
</FunctionalUnit>
</Container>
<Container CompSchema="SPFReferenceComponent" Scope="Data" ContainerID="PBS.Data">
<FunctionalUnit>
<IObject Name="U103" />
<IFunctionalUnit />
</FunctionalUnit>
</Container>
</Containers>