If a method is not specified with the Method option, then NSolve is free to choose a method based on what it believes will best solve the problem. It may choose from several methods in the case you mention based on the structure of the problem given to it. The full details of this decision process can be complicated and the information may not be publically available.
In some cases, the internal working are documented on the documentation page called "Some Notebook On Implementation"
. It has this to say about the internal workings of NSolve:
For sparse linear systems, Solve and NSolve use several efficient numerical methods, mostly based on Gauss factoring with Markowitz products (approximately 250 pages of code).
For systems of algebraic equations, NSolve computes a numerical Gröbner basis using an efficient monomial ordering, then uses eigensystem methods to extract numerical roots.