OP you asked one question and you got a few answers to different questions. One is how to assign a part number. Two is how to model such a case in CAD.
The part-numbering question really hinges on how your org handles things and at what level of scope you and/or your company works. For me, for example, I design weldments and then a separate company makes the weldment. So, to me, the whole weldment including any permanent attachment like a weld nut, PEM/clinching nut, etc. I consider it and number it as if it's a single part with no subcomponents. I can do this because I never need to buy the sub-pieces individually, so why give them a part number? I can call it out in the drawing and that's all I need to do. I do not assign the weldment a bill of materials.
On the other hand, let's say you're the fab shop in this scenario and you're making the weldment. The fab shop cares about each piece even though the thing going out the door is just a part to me, it's an assembly to them, and they need to buy or make each piece and keep track of it through the fab process. So in that case it would be proper for them to consider and part-number the weldment more like an assembly. This would also be true if you fab the weldment in-house. In both these cases your organization has a need to keep track of the individual pieces that make up the weldment so it would/should get a bill of materials.
In terms of modeling, I've done the "Insert Part" route and I do not like it. Insert Part creates separate bodies for each instance of the inserted component which reduces the efficiency measures in Solidworks such as lightweight/large assembly mode. Positions of bodies inserted into parts are limited to using Move/Copy which is conditionally useful but very far from having pull assembly-mate capability. Finally, I often create a pseudo-BOM in my drawing where I want to call out the nutserts or whatever, and modeling everything into a sldprt file forces you into using a Cut List which is still a lot less flexible than a Solidworks BOM although it's much better than it used to be.
I would model the weldment as a sldprt to use the weldment modeling tools, then I would put that into an sldasm so that I could add the purchased components and use Mates and patterns like any other assembly. I would set the sldasm to Hide all subcomponents via right-click on configuration>>Properties menu which will cause Solidworks to treat the sldasm like a sldprt on higher-level BOMs. Best of all worlds.