On any scene component you have a property named Parent Socket, you can enter a value from a dropdown if the parent of your selected scene component has any sockets (bones + sockets).

Breakdown of the Parent Socket browser

This dropdown is built from FBlueprintComponentDetails::CustomizeDetails (search for Parent Socket to find it as this function handles other stuff to).

When you click on the browse icon it runs FBlueprintComponentDetails::OnBrowseSocket, which will push a combo box (SSocketChooserPopup) if the parent has any sockets. The sockets are queried with USceneComponent::QuerySupportedSockets() inside the widget Construct function.

Once you click on a socket entry, ChooseSocket (in widget class) will be called, which calls the OnSocketChosen delegate which runs FBlueprintComponentDetails::OnSocketSelection.

QuerySupportedSockets overrides

Using the type of the returned socket description you can know if its a “pure” socket or a bone.

StaticMeshComponent

It iterates all sockets of type UStaticMeshSocket.