code: @Override
      public void setAttributeProperties(final String deviceName, final String attributeName,
              final Map<String, String[]> properties) throws DevFailed {
          final DeviceData argin = new DeviceData();
          final List<String> args = new ArrayList<String>();
          args.add(deviceName);
          args.add(Integer.toString(1)); // attribute number
          args.add(attributeName);
          args.add(Integer.toString(properties.size())); // property number
          for (final Map.Entry<String, String[]> entry : properties.entrySet()) {
              args.add(entry.getKey());
              final String[] propValues = entry.getValue();
              args.add(Integer.toString(propValues.length));
              for (final String propValue : propValues) {
                  args.add(propValue);
              }
          }
          argin.insert(args.toArray(new String[args.size()]));
          database.command_inout("DbPutDeviceAttributeProperty2", argin);
      }
docs: Set some attribute properties. (execute DbPutDeviceAttributeProperty2 on
  DB device)
  
  @param deviceName
  The device name
  @param attributeName
  The attribute name
  @param properties
  The properties names and values.
  @throws DevFailed