Heat 3 tablespoons of the olive oil in a medium (10-inch) saute pan. Add the onion and saute over medium-low heat for 5 minutes, stirring occasionally, until very tender but not browned. Add the garlic and saute for 1 more minute. Stir in the tomatoes, 1 teaspoon salt, and 1/2 teaspoon pepper and cook over medium-low heat for 10 to 15 minutes, stirring occasionally, until the liquid evaporates and the tomato sauce thickens slightly. Off the heat, stir in the vinegar and basil.
Meanwhile, place a large (12-inch) cast-iron pan over high heat for 5 minutes. Brush the salmon all over with olive oil, sprinkle liberally with salt and pepper, and place it skin side up in the pan. Cook the fish for 3 to 4 minutes without moving them, until browned. Turn the salmon skin side down with a small metal spatula and transfer the pan to the oven for 8 minutes. (The salmon will not be completely cooked through.) Remove the fish to a serving platter, cover with aluminum foil, and allow to rest for 5 minutes.
Reheat the tomatoes, season to taste, and serve hot, warm, or at room temperature along with the salmon.