My understanding was that there are many solvers that you can use. Do they all backtrack?
This is in essence traversing through a search tree (through DFS) and finding a valid end-node.
This means that when we find an invalid end-node (for example by running out of possible values for a variable) then we must in some way go back up the search tree.
There are several different ways of doing this.
Short answer: Yes, we must backtrack somehow.
Now, they often do all kinds of other clever things on top (learning, restarts, parallelisation, heuristics), but when the going gets tough, there is a lot of backtracking.