Heat 1 tablespoon oil in a skillet over medium heat until hot. Pat salmon dry and sprinkle with salt, and pepper, then cook, presentation side down, until undersides form a golden crust, 12 to 15 minutes. Turn fish over and cook until just cooked through, about 3 minutes more. Heat the remaining 2 tablespoons oil in a large skillet over medium-high heat until it shimmers, then sauté onions until golden brown and crisp-tender, 6 to 8 minutes. Stir in balsamic, salt to taste and cook until sauce is syrupy, about 2 minutes. Remove from heat and stir in butter. Spoon onions with sauce onto plates and top with salmon.