You could achieve this by using the Document Set infrastructure.
SharePoint 2010 introduced a new type of document container to be used in place of the standard folder called Document Set. As per Microsoft documentation:
A Document Set is a group of related documents that can be created in one step and then managed as a single entity.... (You can) specify any shared metadata that you want synchronized to all documents in a set.
Let me explain. A document set is "a special type of folder" with some extra features attached to it. Documents inside a set can share some common metadata. The basic idea is that the Document Set defines some metadata field and those field are automatically synched to all documents you create inside the set. That should be enough for fulfilling your purpose.
There is one thing to consider though. The metadata are kept in synch via a timer job, so there may be times when the job has not yet run and you may still view old data. If this could be a problem, perhaps you should resort to something different instead (a custom action that runs the job? an event receiver that emulate it? it depends on your actual environment).
Some clarification about Document Set.
As you may have read from the linked documentation, when you define a document set you can specify:
a set of associated content type: this would de-facto restrict the available content types you can chose when creating a new document or uploading an existing one to the set (notice that it would still be possible to bypass this restriction by abusing some object model "bugs"). Basically, under normal circumstances, you can ensure that the set only contains document of a specific range of types.
some document that should be used as default content when a new set is created in the library. This way you can have some standard document be automagically created for each new set.
a set of some columns whose values will be kept in synch between the set and the contained documents. This actually means that those field will be no longer directly editable on the document: you will need to edit the SET and then the data will be copied to all the document via a timerjob.
AFAIK, none of the above is required for creating a set (unless I am wrong and you need at least one shared column), so you could just ignore the first two point and work with the third.