I know it's possible to directly change and publish a change to a document node like so:
Code:
umbraco.cms.businesslogic.web.Document doc = umbraco.cms.businesslogic.web.Document(id);
doc.getProperty("field").Value = _value;
doc.Publish(new umbraco.BusinessLogic.User(0));
umbraco.library.PublishSingleNode(doc.Id);
But is there an equally simple way to update a property of a media node? I'm imagining using a property as a download counter, by first checking if it has been initialized to a number, and then incrementing it, before redirecting the browser to the umbracoFile property URL.