In a large pot of boiling salted water, cook pasta until al dente according to package directions. Drain, reserving 1 cup of pasta water. Return pasta to pot.
Meanwhile, in a large skillet, heat 1 tablespoon oil over medium-high. Add onion and garlic, season with salt and pepper, cook, stirring occasionally until browned, 3 to 4 minutes. Add wine and cook until evaporated, about 2 minutes.
Stir in artichokes and cook until starting to brown, 2 to 3 minutes. Add olives and half of the tomatoes; cook until tomatoes start to break down, 1 to 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.