Roth is one of the top 2 pitchers, has become a pretty good third baseman, and can hit the ball at the plate. That's pretty close to all-around as you can get. The only thing stopping him is playing in the outfield and the catcher spot from that "all-around" status.
Roth managed to put up the most "official" at bats on the team (at 109), led the team with 31 RBI's (to my count). He also reached base an astonishing 14 times because of a Fielder's Choice (by far led the team). The reason why Roth led the team in RBI's (and Fielder's Choices) is because the players in front of him in the lineup get on base pretty often. Roth had 69 plate appearances in which he had a chance to drive in a run or two - which was 54% of the time. That's credit given to William Elliott, Henry Webb and Brooks Krouse getting on base ahead of him so that he has those chances. There is a reason why he bats in the "clean up" spot.
Although he had 13 errors last year on the field (the majority being in-between hops that he has learned late in the season to avoid), he has become a reliable third baseman; his best game coming against Amory being responsible for 1/3 of the total outs made in that game (8 out of 24) and made three SportsCenter Top 10 snags to help record 4 of those outs. He led the team playing all but 3 defensive outs last season (coming out for his brother Houston on the mound during Game 1 of the Starkville series).
And let's not forget what he does on the mound for Oxford - entering as the team's No. 2 pitcher next season (again behind Barber). This past season he had an 8-2 pitching record and recorded 2 Saves (both best on the team) with a 2.32 ERA. He had 47 strikeouts versus 19 walks and 8 Hit-by-Pitches in 51.1 Innings Pitched. He led the staff in "First Pitch Strike" percentage at .597 and had a total of 5 Complete Game outings.
This may be the only sport he plays for Oxford, but he is good at it.