The state nodes don't actually have any functions called automatically by Godot (like _physics_process), so adding each state as a child of the player won't result in their scripts being run.
Instead they have physics_process (note the missing underscore from the start) which only the state manager knows about.
The state manager has a variable called current_state. Whichever state is in here is the only script that runs each update.
The player object tells the state manager to do a physics_process. The state manager then calls the physics_process of only the state in current_state.
If the state's physics_process can return a state, the state manager will make that returned state the new current_state (calling exit on the previous state and enter on the new state).
For example the jump state returns the idle state if the player touches the floor without moving. That will in turn cause jump state exit and idle state enter to be called.