title: Synchronize access to mutable fields with Kotlin's map delegation
body: <p>Is this implementation safe to synchronize the access to the public fields/properties?</p>
  <pre><code>class Attributes(
      private val attrsMap: MutableMap&lt;String, Any?&gt; = Collections.synchronizedMap(HashMap())
  ) {
  
      var attr1: Long? by attrsMap
      var attr2: String? by attrsMap
      var attr3: Date? by attrsMap
      var attr4: Any? = null
      ...
  }
  </code></pre>