When an entity object is marked for persisting (i.e., when the InsertOnSubmit method is called), the same is done for all the related entities. This is because the data context checks all navigation properties of this entity to find out whether any of them point to some other entity objects not being persisted yet.
This means that it is sufficient to call InsertOnSubmit on only a single object, and the whole graph of related entities will be persisted on SubmitChanges as well. For example, we insert a ProductCategory object and related Products:
As we can see from the log, all three objects are saved to the database at the SubmitChanges call. Actually, it does not matter that we insert the topmost node of the graph (as it was said, LinqConnect checks all navigation properties of the entity being inserted, whether they point to the 'master' or 'dependent' entities). To check this, you can insert one of the product instead of the category in the above sample, and both the category and the other product will be saved as well:
The InsertAllOnSubmit method does the same as InsertOnSubmit with the only difference that it takes a collection of entity objects instead of a single one.