@SuppressWarnings("squid:S3776")
    default ClickHouseValue update(Object value) {
        if (value == null) {
            return resetToNullOrEmpty();
        } else if (value instanceof Boolean) {
            return update((boolean) value);
        } else if (value instanceof boolean[]) {
            return update((boolean[]) value);
        } else if (value instanceof Character) {
            return update((char) value);
        } else if (value instanceof char[]) {
            return update((char[]) value);
        } else if (value instanceof Byte) {
            return update((byte) value);
        } else if (value instanceof byte[]) {
            return update((byte[]) value);
        } else if (value instanceof Short) {
            return update((short) value);
        } else if (value instanceof short[]) {
            return update((short[]) value);
        } else if (value instanceof Integer) {
            return update((int) value);
        } else if (value instanceof int[]) {
            return update((int[]) value);
        } else if (value instanceof Long) {
            return update((long) value);
        } else if (value instanceof long[]) {
            return update((long[]) value);
        } else if (value instanceof Float) {
            return update((float) value);
        } else if (value instanceof float[]) {
            return update((float[]) value);
        } else if (value instanceof Double) {
            return update((double) value);
        } else if (value instanceof double[]) {
            return update((double[]) value);
        } else if (value instanceof BigDecimal) {
            return update((BigDecimal) value);
        } else if (value instanceof BigInteger) {
            return update((BigInteger) value);
        } else if (value instanceof Enum) {
            return update((Enum<?>) value);
        } else if (value instanceof Inet4Address) {
            return update((Inet4Address) value);
        } else if (value instanceof Inet6Address) {
            return update((Inet6Address) value);
        } else if (value instanceof LocalDate) {
            return update((LocalDate) value);
        } else if (value instanceof LocalTime) {
            return update((LocalTime) value);
        } else if (value instanceof LocalDateTime) {
            return update((LocalDateTime) value);
        } else if (value instanceof Instant) {
            return update((Instant) value);
        } else if (value instanceof OffsetDateTime) {
            return update((OffsetDateTime) value);
        } else if (value instanceof ZonedDateTime) {
            return update((ZonedDateTime) value);
        } else if (value instanceof Collection) {
            return update((Collection<?>) value);
        } else if (value instanceof Enumeration) {
            return update((Enumeration<?>) value);
        } else if (value instanceof Map) {
            return update((Map<?, ?>) value);
        } else if (value instanceof Object[]) {
            return update((Object[]) value);
        } else if (value instanceof UUID) {
            return update((UUID) value);
        } else if (value instanceof String) {
            return update((String) value);
        } else if (value instanceof InputStream) {
            return update((InputStream) value);
        } else if (value instanceof Reader) {
            return update((Reader) value);
        } else if (value instanceof ClickHouseValue) {
            return update((ClickHouseValue) value);
        } else {
            return updateUnknown(value);
        }
    }
Updates value. This method tries to identify type of {@code value} and then
use corresponding update method to proceed. Unknown value will be passed to
{@link #updateUnknown(Object)}.

@param value value to update, could be null
@return this object
clickhouse-data/src/main/java/com/clickhouse/data/ClickHouseValue.java