In large pot of boiling salted water, cook pasta until al dente according to package instructions.
Drain, reserving 1 cup of pasta water.
Return pasta to pot.
Meanwhile, in a large skillet, heat 1 tbsp oil over medium-high.
Add onion and garlic, season with salt and pepper, cook, stirring occasionally until lightly browned, 3-4 minutes.
Add wine and cook until evaporated, about 2 minutes.
Stir in artichokes and cook until starting to brown, 2-3 minutes.
Add olives and half of the tomatoes; cook until tomatoes start to break down, 1-2 minutes.
Add pasta to skillet.
Stir in remaining tomatoes, oil, cheese, and basil.
Thin with reserved pasta water if necessary to coat the spaghetti.
Serve with additional cheese.