Using a paring knife, remove the center core of the cabbage.
In a large nonreactive stockpot, bring 2 quarts of water to a boil.
Add the cabbage and cook for 2 to 3 minutes, or until the outer leaves are bright green and tender.
Lift the cabbage from the water and remove the outer leaves.
Return the cabbage to the boiling water and repeat the process until all leaves are cooked. Reserve 2 cups of the cabbage cooking water.
Trim the thick center vein from the bottom of each leaf. Reserve four large outer leaves to line the bottom of the pan.
Prepare the Filling:
In a medium skillet, melt the butter over medium heat.
Add the chopped onion and garlic; cook until golden and tender, about 8 minutes.
In a large bowl, combine the onion mixture, cooked rice, ground beef, ground pork, parsley flakes, grated green pepper, and chopped celery. Season with salt and pepper to taste.
Assemble the Rolls:
Place about 1/3 cup of the rice filling onto one cabbage leaf.
Fold the sides of the cabbage over the filling, and starting with the stem end, roll the cabbage up.
Repeat with the remaining leaves and filling.
Cook the Rolls:
Line a 5-quart Dutch oven with the reserved outer cabbage leaves.
Transfer the stuffed cabbage rolls to the Dutch oven.
In a large bowl, combine the tomato puree and the reserved 2 cups of cabbage cooking water. Pour enough of the tomato sauce over the cabbage rolls to almost cover them.
Sprinkle the chopped Granny Smith apple over the top of the cabbage rolls.
Bring to a boil, then immediately reduce to a gentle simmer; cover and cook for 1 hour, or until the cabbage is very tender, adding additional tomato sauce as needed.
Finish and Serve:
Place the sour cream in a small bowl and ladle in about 3/4 cup of the tomato sauce from the cooked stuffed cabbage rolls. Whisk to combine.
Add the sour cream mixture back to the Dutch oven and stir to combine.
Serve the stuffed cabbage rolls with additional sour cream if desired.