In a big pan of boiling salty water, cook pasta until al dente as per the package directions. Drain the remaining pasta.
In the meantime, 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.
Mix in artichokes and boil 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 supplementary cheese.