Is there a way to save composite node presets?
Yes, you can use node groups.
Creating node groups
You can create a node group by selecting the nodes you want to save and then pressing ⎈ CtrlG:

After you create a group, you'll end up inside the group, where you can edit it. Toggle in and out of the last selected group by pressing ↹ Tab.
While inside the group, you can edit the node tree and define what the inputs and outputs should be (if any) by connecting the special Group Input and Group Output nodes:

Now you have a reusable custom node.
For more control over the inputs and outputs, you can add1, remove2, rename3, reorder4, and change default values5 of inputs in the Properties panel (N) while inside the group (↹ Tab):

For value inputs (gray sockets for scalars, purple sockets for vectors) you can also define Min and Max values.
Note that node groups can contain other node groups, in which case navigating between between these with just ↹ Tab can sometimes be confusing. You can always go up and out of the current node group by pressing the up button in the header (think of the node editor like a file browser and node groups like directories):

To ungroup a node, press ⎇ AltG with the group node selected (outside of the node group)
Saving and reusing node groups
To see how you can save these in a library blendfile (or even your startup.blend) and import them into whatever project you need, see

Can I make a custom node from a group and have that available in other projects?

How can I apply some material included in a node-pack library?