docs: private static void insertFromJson(CqlSession session) {
  
      JsonObject alice = Json.createObjectBuilder().add("name", "alice").add("age", 30).build();
  
      JsonObject bob = Json.createObjectBuilder().add("name", "bob").add("age", 35).build();
  
      JsonObject aliceScores =
          Json.createObjectBuilder().add("call_of_duty", 4.8).add("pokemon_go", 9.7).build();
  
      JsonObject bobScores =
          Json.createObjectBuilder().add("zelda", 8.3).add("pokemon_go", 12.4).build();
  
      // Build and execute a simple statement
      Statement stmt =
          insertInto("examples", "json_jsr353_function")
              .value("id", literal(1))
              // client-side, the JsonObject will be converted into a JSON String;
              // then, server-side, the fromJson() function will convert that JSON string
              // into an instance of the json_jsr353_function_user user-defined type (UDT),
              // which will be persisted into the column "user"
              .value(
                  "user",
                  function("fromJson", literal(alice, session.getContext().getCodecRegistry())))
              // same thing, but this time converting from
              // a JsonObject to a JSON string, then from this string to a map<varchar,float>
              .value(
                  "scores",
                  function("fromJson", literal(aliceScores, session.getContext().getCodecRegistry())))
              .build();
      session.execute(stmt);
  
      // The JSON object can be a bound value if the statement is prepared
      // (subsequent calls to the prepare() method will return cached statement)
      PreparedStatement pst =
          session.prepare(
              insertInto("examples", "json_jsr353_function")
                  .value("id", bindMarker("id"))
                  .value("user", function("fromJson", bindMarker("user")))
                  .value("scores", function("fromJson", bindMarker("scores")))
                  .build());
      session.execute(
          pst.bind()
              .setInt("id", 2)
              // note that the codec requires that the type passed to the set() method
              // be always JsonStructure, and not a subclass of it, such as JsonObject
              .set("user", bob, JsonStructure.class)
              .set("scores", bobScores, JsonStructure.class));
    }