Similar questions like that of the title of this post, has come up a couple of times in the recent past. This topic has been covered in this blog-post too – though from a slightly different perspective.
As mentioned in this blog-post, the key to finding out if a Family Instance requires a host or not is to find out the Host parameter of the Family itself. This blog-post contains a screenshot of a Outlet-Duplex family instance (which is wall based) and shows how Revit LookUp tool can be used to confirm that the value of the HOST parameter as 1 (which confirms that the Family is wall-based). Once a given family that needs to be determined, is loaded into a Revit model, there is no need to create an instance of the family and then edit it and then access the HOST parameter – the loaded Family itself will provide access to the value of this parameter directly to help determine if the family needs a host and if yes, of which type.