Usage of TDF_TagSource::NewChild and TDocStd_Document::Main?

I am trying to understand the logic of some functions.

I can see that when a TDocStd_Document, say doc for short, calls the method Main(), doc->Main(), what happens is that from an empty document it generates a TDF_Label object with absolute tag 0:1 or it returns a previously created main label.

Now I naively thought that I could add another label, following the documentation, with TDF_TagSource::NewChild(doc->Main().Root()). However the document after this call still has a single label.

I can't understand from the documentation how you are supposed to use this TDF_TagSource class to generate multiple labels. Do I have to allocate one and use that object? Is it a global variable? Do I have to associate one with a document or with a label? How?

Thank you for your help.