Pour 2 tablespoons oil into a large skillet. Place over medium heat.
When oil is hot and shimmering, add onions. Sauté until translucent.
Add garlic. Cook for 1 minute.
Remove from heat and transfer to a mixing bowl.
Add ricotta, parsley, egg, salt and black pepper. Whisk together until combined.
Add beef and breadcrumbs. Mix with your hands until just combined.
Using wet fingers, roll mixture into small meatballs.
Pour 1 tablespoon oil into a large skillet (use the same one, if you like). Place over medium heat.
When oil is hot and shimmering, add meatballs and cook, stirring around to cook evenly, until browned well on all sides.
Add tomato sauce, water and red pepper flakes. Bring to a simmer. Reduce the heat to med-low and lightly simmer for 30 minutes, stirring occasionally.
While meatballs are cooking, prepare pasta according to package directions. Drain. Set aside.
When done,serve meatballs and sauce over cooked pasta, sprinkled with the Parmesan cheese.