There are actually two reasons for the ongoing refusal of U.S. presidents to authorize the relocation under that law:
1. Congress had no authority to mandate such a thing in the first place.
2. The U.S. government has a long-standing policy of keeping U.S. embassies out of disputed areas.
All the territory of Israel is disputed for that matter. There are UN resolutions recognizing Israel and their right to their original territory of 1948, but there are those nations and groups which do not recognize that.
The status of the territory that changed hands after the 1967 war is in dispute, including Jerusalem. I guess each US government has to decide what it’s position on those territories will be. I don’t go along with any notion that everything Israel gained during that war should be returned to the aggressors who set off the war and intended to “drive the Jews into the sea”.
I believe if the executive and the legislative branches of the US government are in agreement (after 1/20/2017) to move the embassy to Jerusalem, then the authority definitely exists to do it.